From c7970c8c39736732bc964b62e17a4f1e386af7bb Mon Sep 17 00:00:00 2001 From: Jan Beulich Date: Fri, 28 Sep 2012 10:59:41 +0200 Subject: [PATCH] x86: replace literal numbers In various cases, 256 was being used instead of NR_VECTORS or a derived ARRAY_SIZE() expression. In one case (guest_has_trap_callback()), a wrong (unrelated) constant was used instead of NR_VECTORS. Signed-off-by: Jan Beulich Acked-by: Keir Fraser --- xen/arch/x86/domain.c | 11 ++++++----- xen/arch/x86/traps.c | 4 ++-- xen/arch/x86/x86_64/compat/traps.c | 2 +- 3 files changed, 9 insertions(+), 8 deletions(-) diff --git a/xen/arch/x86/domain.c b/xen/arch/x86/domain.c index d0c516a3ee..58766ba029 100644 --- a/xen/arch/x86/domain.c +++ b/xen/arch/x86/domain.c @@ -374,8 +374,9 @@ int switch_compat(struct domain *d) static inline bool_t standalone_trap_ctxt(struct vcpu *v) { - BUILD_BUG_ON(256 * sizeof(*v->arch.pv_vcpu.trap_ctxt) > PAGE_SIZE); - return 256 * sizeof(*v->arch.pv_vcpu.trap_ctxt) + sizeof(*v) > PAGE_SIZE; + BUILD_BUG_ON(NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt) > PAGE_SIZE); + return NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt) + sizeof(*v) + > PAGE_SIZE; } int vcpu_initialise(struct vcpu *v) @@ -432,7 +433,7 @@ int vcpu_initialise(struct vcpu *v) } else v->arch.pv_vcpu.trap_ctxt = (void *)v + PAGE_SIZE - - 256 * sizeof(*v->arch.pv_vcpu.trap_ctxt); + NR_VECTORS * sizeof(*v->arch.pv_vcpu.trap_ctxt); /* PV guests by default have a 100Hz ticker. */ v->periodic_period = MILLISECS(10); @@ -702,7 +703,7 @@ int arch_set_info_guest( fixup_guest_stack_selector(d, c.nat->kernel_ss); fixup_guest_code_selector(d, c.nat->user_regs.cs); - for ( i = 0; i < 256; i++ ) + for ( i = 0; i < ARRAY_SIZE(c.nat->trap_ctxt); i++ ) { if ( !is_canonical_address(c.nat->trap_ctxt[i].address) ) return -EINVAL; @@ -725,7 +726,7 @@ int arch_set_info_guest( fixup_guest_code_selector(d, c.cmp->event_callback_cs); fixup_guest_code_selector(d, c.cmp->failsafe_callback_cs); - for ( i = 0; i < 256; i++ ) + for ( i = 0; i < ARRAY_SIZE(c.cmp->trap_ctxt); i++ ) fixup_guest_code_selector(d, c.cmp->trap_ctxt[i].cs); /* LDT safety checks. */ diff --git a/xen/arch/x86/traps.c b/xen/arch/x86/traps.c index 58cf0de6c0..2ff88ade8e 100644 --- a/xen/arch/x86/traps.c +++ b/xen/arch/x86/traps.c @@ -3506,7 +3506,7 @@ int guest_has_trap_callback(struct domain *d, uint16_t vcpuid, unsigned int trap BUG_ON(vcpuid >= d->max_vcpus); /* Sanity check - XXX should be more fine grained. */ - BUG_ON(trap_nr > TRAP_syscall); + BUG_ON(trap_nr >= NR_VECTORS); v = d->vcpu[vcpuid]; t = &v->arch.pv_vcpu.trap_ctxt[trap_nr]; @@ -3574,7 +3574,7 @@ long do_set_trap_table(XEN_GUEST_HANDLE(const_trap_info_t) traps) /* If no table is presented then clear the entire virtual IDT. */ if ( guest_handle_is_null(traps) ) { - memset(dst, 0, 256 * sizeof(*dst)); + memset(dst, 0, NR_VECTORS * sizeof(*dst)); init_int80_direct_trap(curr); return 0; } diff --git a/xen/arch/x86/x86_64/compat/traps.c b/xen/arch/x86/x86_64/compat/traps.c index 8276a5b985..39c5656353 100644 --- a/xen/arch/x86/x86_64/compat/traps.c +++ b/xen/arch/x86/x86_64/compat/traps.c @@ -317,7 +317,7 @@ int compat_set_trap_table(XEN_GUEST_HANDLE(trap_info_compat_t) traps) /* If no table is presented then clear the entire virtual IDT. */ if ( guest_handle_is_null(traps) ) { - memset(dst, 0, 256 * sizeof(*dst)); + memset(dst, 0, NR_VECTORS * sizeof(*dst)); return 0; } -- 2.30.2